package cn.cstech.aijia.net;

import android.content.Context;
import android.os.Handler;
import android.os.Looper;

import cn.cstech.aijia.R;
import cn.cstech.aijia.common.AppDebug;
import cn.cstech.aijia.common.ErrorCode;
import cn.cstech.aijia.model.AdTypeList;
import cn.cstech.aijia.model.CompanyInfoList;
import cn.cstech.aijia.model.DesignerInfoList;
import cn.cstech.aijia.model.RenovationCaseList;
import cn.cstech.aijia.model.RenovationList;
import cn.cstech.aijia.model.UserInfo;
import cn.cstech.aijia.net.lsn.OnAbstractListener;
import cn.cstech.aijia.net.lsn.OnResponseListener;
import cn.cstech.aijia.ui.base.utils.NetworkUtil;

/**
 * Created with Android Studio.
 * Title:NetManager
 * Description:
 * Copyright:Copyright (c) 2014
 * Company:中国平安健康保险有限公司
 * Author:Alice
 * Date:15/8/18
 * Time:下午1:44
 * Version 1.0
 */
public class NetManager {
    public static final boolean DEBUG = AppDebug.NET_DEBUG;
    public static String TAG = "NetManager";
    private static Context mContext;
    private static NetManager mInstance;
    private Handler mHandler = new Handler(Looper.getMainLooper());

    NetManager(Context context){
        mContext = context;
    }

    public static NetManager getInstance(Context context){
        if(mInstance == null){
            mInstance = new NetManager(context);
        }
        return mInstance;
    }

    /**
     * 检测条件是否允许提交请求
     *
     * @return
     */
    private boolean checkSubmitStatus(final OnAbstractListener lsn) {
        if (!NetworkUtil.isNetworkAvailable(mContext)) {
            mHandler.post(new Runnable() {

                @Override
                public void run() {
                    if (lsn != null) {
                        lsn.onInternError(ErrorCode.NETWORK_UNAVAILABLE,
                                mContext.getString(R.string.network_unavailable));
                    }
                }
            });
            return false;
        }
        return true;
    }

    /**
     * 请求动态验证码
     * @param phoneNum
     * @param lsn
     */
    public void doRequestDynamicCode(String phoneNum,OnResponseListener<Boolean> lsn){

    }

    /**
     * 注册的接口
     * @param phoneNum
     * @param dynamicCode
     * @param pwd
     * @param lsn
     */
    public void doRegister(String phoneNum,String dynamicCode,String pwd,OnResponseListener<UserInfo> lsn){

    }
    /**
     * 登录的接口
     * @param userName
     * @param pwd
     */
    public void doLogin(String userName,String pwd,OnResponseListener<UserInfo> lsn){

    }

    /**
     * 忘记密码的接口
     * @param phoneNum
     * @param dynamicCode
     * @param pwd
     * @param lsn
     */
    public void doResetPwd(String phoneNum,String dynamicCode,String pwd,OnResponseListener<Boolean> lsn){

    }

    /**
     * 更新个人资料
     * @param userInfo
     * @param lsn
     */
    public void doUpldateUserInfo(UserInfo userInfo,OnResponseListener<Boolean> lsn){

    }

    /**
     * 上传文件
     * @param filePath
     * @param lsn
     */
    public void doUploadHeadIcon(String filePath,OnResponseListener<Boolean> lsn){

    }

    /**
     * 获取装修类型信息（房型，装修风格）
     */
    public void doGetRenovationList(OnResponseListener<RenovationList> lsn){

    }

    /**
     * 获取装修案例列表
     * @param lsn
     */
    public void doGetRenovationCaseList(int pageIndex,int pageSize,OnResponseListener<RenovationCaseList> lsn){

    }

    /**
     * 获取附近的设计师
     * @param pageIndex
     * @param pageSize
     * @param lsn
     */
    public void doGetNearByDesignerInfoList(int pageIndex,int pageSize,OnResponseListener<DesignerInfoList> lsn){

    }

    /**
     * 获取附近的装修公司
     * @param pageIndex
     * @param pageSize
     * @param lsn
     */
    public void doGetNearByCompanyInfoList(int pageIndex,int pageSize,OnResponseListener<CompanyInfoList> lsn){

    }

    /**
     * 提交装修服务
     * @param phoneNum
     * @param userId
     * @param companyId
     */
    public void doSubmitRenovationService(String phoneNum,String userId,String companyId){

    }

    /**
     * 提交设计服务
     * @param phoneNum
     * @param userId
     * @param companyId
     */
    public void doSubmitDesignService(String phoneNum,String userId,String companyId){

    }

    /**
     * 提交担保服务
     * @param phoneNum
     * @param userId
     * @param companyId
     */
    public void doSubmitGuaranteeService(String phoneNum,String userId,String companyId){

    }

    /**
     * 广告获取
     * @param type
     * @param lsn
     */
    public void doGetAdsList(String type,OnResponseListener<AdTypeList> lsn){

    }

    /**
     * 我的服务列表
     * @param lsn
     */
    public void doGetMyServiceList(int pageIndex,int pageSize,OnResponseListener<Boolean> lsn){

    }

    /**
     * 推送方案列表
     * @param lsn
     */
    public void doGetPushRenovationCaseList(int pageIndex,int pageSize,OnResponseListener<Boolean> lsn){

    }

}
